//
//  UIColor+MY.h
//  JQLive
//
//  Created by Bruce on 2020/3/3.
//  Copyright © 2020 mlqk. All rights reserved.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

typedef struct {
    NSInteger r;//0~255;
    NSInteger g;//0~255;
    NSInteger b;//0~255;
    NSInteger a;//0~255;
} MX_ColorValue;

CG_INLINE MX_ColorValue MX_ColorValueMake(NSInteger R, NSInteger G, NSInteger B, NSInteger A) {
    MX_ColorValue color;
    color.r = R;
    color.g = G;
    color.b = B;
    color.a = A;
    return color;
}


@interface UIColor (MY)

/**
 *  通过int类型rgb获取颜色
 *
 *  @param rgb rgb(#000000)
 *
 *  @return 颜色对象
 */
+ (UIColor *)colorWithUInt:(NSUInteger)rgb;

/**
 *  通过int类型rgb和alpha通道获取颜色
 *
 *  @param rgb   rgb(#000000)
 *  @param alpha alpha通道
 *
 *  @return 颜色对象
 */
+ (UIColor *)colorWithUInt:(NSUInteger)rgb alpha:(CGFloat)alpha;

+ (UIColor *)colorWithString:(NSString *)hexString alpha:(CGFloat)alpha;
+ (UIColor *)colorWithString:(NSString *)hexString;

/**
 * 两个颜色之间的过渡颜色
 * beginColor 开始颜色
 * endColor 结束颜色
 * coe 过渡的比例 （0~1）
 */
+ (instancetype)mx_transitionColorWithStartColor:(UIColor *)startColor endColor:(UIColor *)endColor andCoe:(double)coe;

/**
 * 取两个颜色的过渡颜色
 * beginColorHex 开始颜色的 十六进制值
 * endColorHex 结束颜色的 十六进制值
 * coe 过渡比例 （0~1）
 */
+ (instancetype)mx_transitionColorWithStartHex:(NSString *)startHex endHex:(NSString *)endColorHex andCoe:(double)coe;

/**
 * 两个色值之间的过渡颜色
 * beginValue 开始色值
 * endValue 结束色值
 * coe 过渡比例 （0~1）
 */
+ (instancetype)mx_transitionColorWithStartValue:(MX_ColorValue)startValue endValue:(MX_ColorValue)endValue andCoe:(double)coe;
@end

NS_ASSUME_NONNULL_END
